コマンドラインでre:dashのグループ、グループ権限を設定してみる
re:dashではグループに基づいて各ユーザーに権限が付与されます。
アカウント追加時の設定では「Defaultグループ」に参加され、クエリ作成などが実施可能な権限を付与された状態となります。
この状態でre:dash運用を行うと追加ユーザー分のクエリ、ダッシュボードが作成可能な状態となってしまいます。 グループの新規作成はGUIから実行可能ですが、権限設定はGUIから実行は出来ないようなので今回はグループに各権限を与えるべくコマンドラインにて権限設定を投入してみました。
作成済みグループを確認する
対象インスタンスへsshログイン
ssh -i <キーペア名> -u ubuntu <接続インスタンスIP or DNS名>
コマンドを実行する(ユーザー一覧を表示する)
$ cd /opt/redash/current ; pwd /opt/redash/current $ sudo -u redash bin/run ./manage.py groups list Id: 1 Name: admin Type: builtin Organization: default -------------------- Id: 2 Name: default Type: builtin Organization: default
グループを作成する
$ sudo -u redash bin/run ./manage.py groups create "<グループ名>"
$ sudo -u redash bin/run ./manage.py groups create --help Usage: manage.py groups create [OPTIONS] NAME Options: --org TEXT The organization the user belongs to (leave blank for 'default'). --permissions TEXT Comma separated list of permissions ('create_dashboard', 'create_query', 'edit_dashboard', 'edit_query', 'view_query', 'view_source', 'execute_query', 'list_users', 'schedule_query', 'list_dashboards', 'list_alerts', 'list_data_sources') (leave blank for default). --help Show this message and exit.
$ sudo -u redash bin/run ./manage.py groups create "dashboard_view_only" Creating group (dashboard_view_only)... permissions: [create_dashboard,create_query,edit_dashboard,edit_query,view_query,view_source,execute_query,list_users,schedule_query,list_dashboards,list_alerts,list_data_sources]
$ sudo -u redash bin/run ./manage.py groups list Id: 1 Name: admin Type: builtin Organization: default -------------------- Id: 2 Name: default Type: builtin Organization: default -------------------- Id: 4 Name: dashboard_view_only Type: regular Organization: default --------------------
グループへ権限を付与する
グループへ権限を付与する場合、change_permissionsオプションを使用してパーミッションを付与する必要があります。
$ sudo -u redash bin/run ./manage.py groups change_permissions --permissions <付与パーミッション> <グループ名ID>
$ sudo -u redash bin/run ./manage.py groups change_permissions --help Usage: manage.py groups change_permissions [OPTIONS] GROUP_ID Options: --permissions TEXT Comma separated list of permissions ('create_dashboard', 'create_query', 'edit_dashboard', 'edit_query', 'view_query', 'view_source', 'execute_query', 'list_users', 'schedule_query', 'list_dashboards', 'list_alerts', 'list_data_sources') (leave blank for default). --help Show this message and exit.
$ sudo -u redash bin/run ./manage.py groups change_permissions --permissions list_dashboards 4 Change permissions of group 4 ... current permissions [create_dashboard,create_query,edit_dashboard,edit_query,view_query,view_source,execute_query,list_users,schedule_query,list_dashboards,list_alerts,list_data_sources] will be modify to [list_dashboards]
権限設定を投入したグループにユーザーを所属させる
- Administrator権限を持ったユーザーでre:dashへログインします。
- 右上の歯車を選択します
- GROUPタブを選択し、defaultを選択します
- 限定した権限を付与したいユーザーをdefaultから削除するため、Removeを押下してグループからユーザーを外します
- 次に権限設定を行ったグループを選択します
Add New Member
を選択、グループへ追加したいユーザーを入力して追加します
以上でユーザーの権限が先程設定したグループのみとなりました。
本当に権限が付与されているか確認してみます。
defaultグループに所属しているユーザー
dashboard_view_onlyグループに所属しているユーザー(list_dashboardsのみ付与)
New Alertについては外れませんでしたが、新しくクエリやダッシュボード作成が出来なくなりました。
最後に
前回のコマンドラインによるユーザー追加と合わせて今回の作業を実施することで最低限のユーザー管理は出来るようになったかと思います。
適切な権限を設定することで管理者の方への負担は減ると考えているので、積極的に使っていけると幸せになれると思います。